Gin从入门到精通 | 您所在的位置:网站首页 › go语言gin框架 入门到精通 › Gin从入门到精通 |
一、前言 在上文的碎碎念中,我们开启了学习Gin框架以及Go语言的旅途。 在本文中,你将掌握 从0开始创建Go项目安装并引入GIn框架本地启动Gin项目二、正片1. 从0开始创建Go项目项目使用的工具为VSCode并安装命令行启动工具。 我们首先创建项目文件夹,注意要在go路径下的src内。 (base) xiaoyu@localhost src % mkdir gin01 (base) xiaoyu@localhost src % cd gin01 (base) xiaoyu@localhost gin01 % code .gin01为项目文件夹,我们将在这个文件下完成本文内容。 初始化go mod (base) xiaoyu@localhost gin01 % go mod init go: creating new go.mod: module gin01这一步很重要,如果你不初始化go mod ,那就会造成库的引入会出问题。 执行完成之后,项目根目录会生成go.mod文件。 module gin01 go 1.14创建文件main.go作为项目入口,作为简单事例,我们只做输出文字。 package main import "fmt" func main() { fmt.Println("Hello, GO!2021!Fight!") }main()一般作为项目的入口使用。 运行文件。go run main.go (base) xiaoyu@localhost gin01 % go run main.go Hello, GO!2021!Fight!构建文件。go build main.go 构建指的是生成二进制文件,二进制文件可以脱离go环境直接执行。 (base) xiaoyu@localhost gin01 % ./main Hello, GO!2021!Fight!2. 安装并引入GIn框架我们使用go get命令安装框架,安装完成的框架会被放在pkg内。 (base) xiaoyu@localhost gin01 % go get -u github.com/gin-gonic/gin go: downloading github.com/gin-gonic/gin v1.7.4 go: github.com/gin-gonic/gin upgrade => v1.7.4 go: downloading github.com/gin-contrib/sse v0.1.0 go: downloading github.com/golang/protobuf v1.3.3 go: downloading github.com/mattn/go-isatty v0.0.12 go: downloading github.com/go-playground/validator/v10 v10.4.1 go: downloading github.com/ugorji/go v1.1.7 go: downloading github.com/ugorji/go/codec v1.1.7 go: downloading golang.org/x/sys v0.0.0-20200116001909-b77594299b42 go: downloading github.com/go-playground/universal-translator v0.17.0 go: downloading github.com/leodido/go-urn v1.2.0 go: downloading golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9 go: downloading github.com/go-playground/locales v0.13.0 go: github.com/golang/protobuf upgrade => v1.5.2 go: golang.org/x/sys upgrade => v0.0.0-20210923061019-b8560ed6a9b7 go: github.com/go-playground/validator/v10 upgrade => v10.9.0 go: github.com/json-iterator/go upgrade => v1.1.12 go: gopkg.in/yaml.v2 upgrade => v2.4.0 go: github.com/modern-go/reflect2 upgrade => v1.0.2 go: github.com/leodido/go-urn upgrade => v1.2.1 go: github.com/ugorji/go/codec upgrade => v1.2.6 go: github.com/go-playground/locales upgrade => v0.14.0 go: github.com/modern-go/concurrent upgrade => v0.0.0-20180306012644-bacd9c7ef1dd go: github.com/go-playground/universal-translator upgrade => v0.18.0 go: github.com/mattn/go-isatty upgrade => v0.0.14 go: golang.org/x/crypto upgrade => v0.0.0-20210921155107-089bfa567519 go: downloading github.com/golang/protobuf v1.5.2 go: downloading github.com/json-iterator/go v1.1.12 go: downloading github.com/ugorji/go v1.2.6 go: downloading github.com/mattn/go-isatty v0.0.14 go: downloading github.com/go-playground/validator/v10 v10.9.0 go: downloading github.com/ugorji/go/codec v1.2.6 go: downloading golang.org/x/sys v0.0.0-20210923061019-b8560ed6a9b7 go: downloading google.golang.org/protobuf v1.26.0 go: downloading github.com/leodido/go-urn v1.2.1 go: downloading github.com/go-playground/universal-translator v0.18.0 go: downloading github.com/modern-go/reflect2 v1.0.2 go: downloading golang.org/x/crypto v0.0.0-20210921155107-089bfa567519 go: downloading golang.org/x/text v0.3.6 go: downloading github.com/go-playground/locales v0.14.0 go: google.golang.org/protobuf upgrade => v1.27.1 go: golang.org/x/text upgrade => v0.3.7 go: downloading golang.org/x/text v0.3.7 go: downloading google.golang.org/protobuf v1.27.1我们在本地安装完成之后,就可以在main.go文件中引入Gin了。 import "github.com/gin-gonic/gin"初始源码如下 package main import "github.com/gin-gonic/gin" func main() { r := gin.Default() //创建gin r.GET("/", index) //绑定路由 r.Run(":8001") //运行绑定端口 } func index(c *gin.Context) { c.JSON(200, gin.H{ "message": "go!go!go!", }) }我在代码中做了简要的注释,并且整个结构非常简洁。 学习中思考,思考中学习。 如果你学习过PHP语言的框架,那你就很清楚,一个框架的文件夹结构,是有官方规范的。 下图是PHP语言框架Yii2的官方项目结构,我们实际项目中也是这么用的,就算是改进也是在这个基础上的。 然而Gin显然并没有类似的结构。 后续我们将讨论这一话题。(留坑) 3. 本地启动Gin项目和简单项目一致,我们也使用run本地运行Gin项目。 (base) xiaoyu@localhost gin01 % go run main.go [GIN-debug] [WARNING] Creating an Engine instance with the Logger and Recovery middleware already attached. [GIN-debug] [WARNING] Running in "debug" mode. Switch to "release" mode in production. - using env: export GIN_MODE=release - using code: gin.SetMode(gin.ReleaseMode) [GIN-debug] GET / --> main.index (3 handlers) [GIN-debug] Listening and serving HTTP on :8001本地浏览器访问http://localhost:8001/ 到此,我们就完成了Gin从安装到运行的全部流程。 三、总结go mod init很重要,是引入库的基础多思考多想问题,能提高学习效率留了个项目文件夹的坑,后续完成! |
CopyRight 2018-2019 实验室设备网 版权所有 |